// API配置
const API_CONFIG = {
    baseURL: 'http://localhost:5000',
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json'
    }
};

// 创建axios实例
const api = axios.create(API_CONFIG);

// 请求拦截器
api.interceptors.request.use(config => {
    const token = localStorage.getItem('token');
    if (token) {
        config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
}, error => {
    console.error('Request error:', error);
    return Promise.reject(error);
});

// 响应拦截器
api.interceptors.response.use(
    response => response,
    error => {
        console.error('Response error:', error);
        if (error.response) {
            if (error.response.status === 401) {
                localStorage.removeItem('token');
                localStorage.removeItem('isAdmin');
                localStorage.removeItem('username');
                window.location.href = 'login.html';
            }
        }
        return Promise.reject(error);
    }
);

// API函数
const API = {
    // 获取机器人状态
    async getRobotStatus() {
        try {
            const response = await api.get('/api/robot/status');
            return response.data;
        } catch (error) {
            console.error('获取机器人状态失败:', error);
            throw error;
        }
    },

    // 获取用户列表
    async getUsers() {
        try {
            const response = await api.get('/api/admin/users');
            return response.data;
        } catch (error) {
            console.error('获取用户列表失败:', error);
            throw error;
        }
    },

    // 获取步态数据
    async getGaitData() {
        try {
            const response = await api.get('/api/admin/gait_data');
            return response.data;
        } catch (error) {
            console.error('获取步态数据失败:', error);
            throw error;
        }
    },

    // 获取文件数据
    async getFileData() {
        try {
            const response = await api.get('/api/admin/file_data');
            return response.data;
        } catch (error) {
            console.error('获取文件数据失败:', error);
            throw error;
        }
    },

    // 获取任务列表
    async getTasks() {
        try {
            const response = await api.get('/api/admin/tasks');
            return response.data;
        } catch (error) {
            console.error('获取任务列表失败:', error);
            throw error;
        }
    },

    // 获取警报列表
    async getAlerts() {
        try {
            const response = await api.get('/api/admin/alerts');
            return response.data;
        } catch (error) {
            console.error('获取警报列表失败:', error);
            throw error;
        }
    },

    // 验证token
    async verifyToken() {
        try {
            const response = await api.get('/api/verify_token');
            return response.data;
        } catch (error) {
            console.error('Token验证失败:', error);
            throw error;
        }
    }
}; 